using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NHibernateDemo.Core
{
        
    public class Ninja : AuditableEntity<int>
    {        
        public virtual string Name { get; set; }
        public virtual Address Address { get; set; }
        public virtual int HitPoints { get; set; }
        
        private IList<Weapon> _Weapons = new List<Weapon>();
        public virtual IList<Weapon> Weapons
        {
            get
            {
                return _Weapons;
            }
            set
            {
                _Weapons = value;
            }
        }
        
    }
    
    public class ThrowableWeapon: Weapon
    {       
        public int Weight { get; set; }
        public bool Poison { get; set; }
    }

    public class Address
    {
        public virtual string City { get; set; }
        public virtual string State { get; set; }
        public virtual string Zip { get; set; }
    }

    public class Weapon : Entity<int>
    {
        public string Name { get; set; }
        public int Damage { get; set; }
        public int Quantity { get; set; }
    }
    
}
